﻿using System.Collections.Generic;
using Navigant.Infrastructure.RepositoryFramework;
using Navigant.Model.PreservationNotices;

namespace Navigant.Model.Custodians
{
    public interface ICustodianRepository : IRepository<Custodian>, IExtendedPropertiesRepository<Custodian>
    {
        IList<Custodian> FindByCriteria(PreservationNoticeCriteria criteria);
        IList<Custodian> FindByExtraCriteria(string extraCriteriaName, 
            string extraCriteriaValue,bool contains);
        IList<string> GetExtraCriteriaPossibleValues(string extraCriteriaFieldName);
        IList<Custodian> FindAllPaged(int pageSize, int currentPage, int lastItemId, out int itemCount);
        string GetDefaultPossibleValue(string extraCriteriaFieldName);
    }
}
